package useless;

import atom.UnaryAtom;
import formula.BinaryFormula;
import formula.Formula;
import formula.UnaryFormula;
import literal.UnaryLiteral;
import sign.FormulaSign;

import java.util.ArrayList;


public class TRules {
    public ArrayList<Formula> applyTRules(){
        UnaryFormula a = new UnaryFormula(new UnaryLiteral(new UnaryAtom("a"), false));
        UnaryFormula b = new UnaryFormula(new UnaryLiteral(new UnaryAtom("b"), false));
        UnaryFormula c = new UnaryFormula(new UnaryLiteral(new UnaryAtom("c"), false));
        UnaryFormula d = new UnaryFormula(new UnaryLiteral(new UnaryAtom("d"), false));
        UnaryFormula e = new UnaryFormula(new UnaryLiteral(new UnaryAtom("e"), false));
        UnaryFormula f = new UnaryFormula(new UnaryLiteral(new UnaryAtom("f"), false));
        UnaryFormula g = new UnaryFormula(new UnaryLiteral(new UnaryAtom("g"), false));
        UnaryFormula h = new UnaryFormula(new UnaryLiteral(new UnaryAtom("h"), false));
        UnaryFormula i = new UnaryFormula(new UnaryLiteral(new UnaryAtom("i"), false));
        UnaryFormula j = new UnaryFormula(new UnaryLiteral(new UnaryAtom("j"), false));
        UnaryFormula k = new UnaryFormula(new UnaryLiteral(new UnaryAtom("k"), false));
        UnaryFormula l = new UnaryFormula(new UnaryLiteral(new UnaryAtom("l"), false));
        UnaryFormula m = new UnaryFormula(new UnaryLiteral(new UnaryAtom("m"), false));
        UnaryFormula n = new UnaryFormula(new UnaryLiteral(new UnaryAtom("n"), false));
        UnaryFormula o = new UnaryFormula(new UnaryLiteral(new UnaryAtom("o"), false));
        UnaryFormula p = new UnaryFormula(new UnaryLiteral(new UnaryAtom("p"), false));
        UnaryFormula q = new UnaryFormula(new UnaryLiteral(new UnaryAtom("q"), false));
        UnaryFormula r = new UnaryFormula(new UnaryLiteral(new UnaryAtom("r"), false));
        UnaryFormula s = new UnaryFormula(new UnaryLiteral(new UnaryAtom("s"), false));
        UnaryFormula t = new UnaryFormula(new UnaryLiteral(new UnaryAtom("t"), false));
        UnaryFormula u = new UnaryFormula(new UnaryLiteral(new UnaryAtom("u"), false));
        UnaryFormula v = new UnaryFormula(new UnaryLiteral(new UnaryAtom("v"), false));
        UnaryFormula w = new UnaryFormula(new UnaryLiteral(new UnaryAtom("w"), false));
        UnaryFormula x = new UnaryFormula(new UnaryLiteral(new UnaryAtom("x"), false));
        UnaryFormula y = new UnaryFormula(new UnaryLiteral(new UnaryAtom("y"), false));
        UnaryFormula z = new UnaryFormula(new UnaryLiteral(new UnaryAtom("z"), false));

        BinaryFormula bf_a=new BinaryFormula(FormulaSign.ANY,a,a);
        BinaryFormula bf_b=new BinaryFormula(FormulaSign.ANY,b,b);
        BinaryFormula bf_c=new BinaryFormula(FormulaSign.ANY,c,c);
        BinaryFormula bf_d=new BinaryFormula(FormulaSign.ANY,d,d);
        BinaryFormula bf_e=new BinaryFormula(FormulaSign.ANY,e,e);
        BinaryFormula bf_f=new BinaryFormula(FormulaSign.ANY,f,f);
        BinaryFormula bf_g=new BinaryFormula(FormulaSign.ANY,g,g);
        BinaryFormula bf_h=new BinaryFormula(FormulaSign.ANY,h,h);
        BinaryFormula bf_i=new BinaryFormula(FormulaSign.ANY,i,i);
        BinaryFormula bf_j=new BinaryFormula(FormulaSign.ANY,j,j);
        BinaryFormula bf_k=new BinaryFormula(FormulaSign.ANY,k,k);
        BinaryFormula bf_l=new BinaryFormula(FormulaSign.ANY,l,l);
        BinaryFormula bf_m=new BinaryFormula(FormulaSign.ANY,m,m);
        BinaryFormula bf_n=new BinaryFormula(FormulaSign.ANY,n,n);
        BinaryFormula bf_o=new BinaryFormula(FormulaSign.ANY,o,o);
        BinaryFormula bf_p=new BinaryFormula(FormulaSign.ANY,p,p);
        BinaryFormula bf_q=new BinaryFormula(FormulaSign.ANY,q,q);
        BinaryFormula bf_r=new BinaryFormula(FormulaSign.ANY,r,r);
        BinaryFormula bf_s=new BinaryFormula(FormulaSign.ANY,s,s);
        BinaryFormula bf_t=new BinaryFormula(FormulaSign.ANY,t,t);
        BinaryFormula bf_u=new BinaryFormula(FormulaSign.ANY,u,u);
        BinaryFormula bf_v=new BinaryFormula(FormulaSign.ANY,v,v);
        BinaryFormula bf_w=new BinaryFormula(FormulaSign.ANY,w,w);
        BinaryFormula bf_x=new BinaryFormula(FormulaSign.ANY,x,x);
        BinaryFormula bf_y=new BinaryFormula(FormulaSign.ANY,y,y);
        BinaryFormula bf_z=new BinaryFormula(FormulaSign.ANY,z,z);

        ArrayList<Formula> arrayList=new ArrayList<>();
        arrayList.add(bf_a);
        arrayList.add(bf_b);
        arrayList.add(bf_c);
        arrayList.add(bf_d);
        arrayList.add(bf_e);
        arrayList.add(bf_f);
        arrayList.add(bf_g);
        arrayList.add(bf_h);
        arrayList.add(bf_i);
        arrayList.add(bf_j);
        arrayList.add(bf_k);
        arrayList.add(bf_l);
        arrayList.add(bf_m);
        arrayList.add(bf_n);
        arrayList.add(bf_o);
        arrayList.add(bf_p);
        arrayList.add(bf_q);
        arrayList.add(bf_r);
        arrayList.add(bf_s);
        arrayList.add(bf_t);
        arrayList.add(bf_u);
        arrayList.add(bf_v);
        arrayList.add(bf_w);
        arrayList.add(bf_x);
        arrayList.add(bf_y);
        arrayList.add(bf_z);

        return arrayList;
    }

    public static void main(String[] args) {
        TRules tRules=new TRules();
        ArrayList<Formula> formulas=tRules.applyTRules();
        for (Formula f:formulas) {
            System.out.println(f);
        }
    }
}
